package com.irdstudio.efp.esb.api.rest.yed.req;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.irdstudio.basic.framework.core.annotation.BeanMapKey;
import com.irdstudio.basic.framework.core.annotation.DicType;
import com.irdstudio.basic.framework.core.constant.EsbEnums;
import com.irdstudio.efp.esb.api.common.sed.SedEnum;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.Digits;
import javax.validation.constraints.NotNull;

/**
 * 需求编号：【2019D0509】（业务提的需求编号）
 * 问题编号：【】（若不是因为修复问题而新增该类，则留空）
 * 开发人员：【wanglh4】
 * 创建日期：【2020/7/27 17:19】
 * 功能描述：
 */
public class ReqIntSetYedBean {
    @BeanMapKey("SetlmnAcctClsf")
    @JsonProperty("SetlmnAcctClsf")
    @NotNull
    @NotEmpty
    @Length(max = 7)
    @DicType(dicType = SedEnum.SettleNoType.class, method = "getValue")
    private String SetlmnAcctClsf;	//结算账户分类

    @BeanMapKey("SetlmnMd")
    @JsonProperty("SetlmnMd")
    @NotNull
    @NotEmpty
    @Length(max = 7)
    @DicType(dicType = SedEnum.SettleMode.class, method = "getValue")
    private String SetlmnMd;	//结算方式

    @BeanMapKey("AcctClsf")
    @JsonProperty("AcctClsf")
    @NotNull
    @NotEmpty
    @Length(max = 7)
    @DicType(dicType = SedEnum.AccountType.class, method = "getValue")
    private String AcctClsf;	//账户分类

    @BeanMapKey("AmtTp")
    @JsonProperty("AmtTp")
    @NotNull
    @NotEmpty
    @Length(max = 7)
    @DicType(dicType = EsbEnums.AmtType.class, method = "getValue")
    private String AmtTp;	//金额类型

    @BeanMapKey("SetlmnAmt")
    @JsonProperty("SetlmnAmt")
    @NotNull
    @NotEmpty
    @Digits(integer = 21,fraction = 2,message = "BlgAmt 数字校验异常")
    private String SetlmnAmt;	//结算金额

    @BeanMapKey("SetlmnCustNo")
    @JsonProperty("SetlmnCustNo")
    @Length(max = 12)
    private String SetlmnCustNo;	//结算客户号

    @BeanMapKey("SetlmnAcctNo")
    @JsonProperty("SetlmnAcctNo")
    @NotNull
    @NotEmpty
    @Length(max = 40)
    private String SetlmnAcctNo;	//结算账号

    @BeanMapKey("SetlmnAcctPdTp")
    @JsonProperty("SetlmnAcctPdTp")
    @NotNull
    @NotEmpty
    @Length(max = 8)
    @DicType(dicType = SedEnum.SedPrdType.class, method = "getValue")
    private String SetlmnAcctPdTp;	//结算账户产品类型

    @BeanMapKey("SetlmnAcctCcy")
    @JsonProperty("SetlmnAcctCcy")
    @NotNull
    @NotEmpty
    @Length(max = 3)
    @DicType(dicType = SedEnum.CurType.class, method = "getValue")
    private String SetlmnAcctCcy;	//结算账户币种

    @BeanMapKey("SetlmnAcctSeqNo")
    @JsonProperty("SetlmnAcctSeqNo")
    @NotNull
    @NotEmpty
    @Length(max = 8)
    private String SetlmnAcctSeqNo;	//结算账户序号

    @BeanMapKey("AutoLockMrk")
    @JsonProperty("AutoLockMrk")
    @Length(max = 10)
    private String AutoLockMrk;	//自动锁定标记

    @BeanMapKey("LoanPrtyLvl")
    @JsonProperty("LoanPrtyLvl")
    @Length(max = 7)
    private String LoanPrtyLvl;	//贷款优先级

    @BeanMapKey("SetlmnWght")
    @JsonProperty("SetlmnWght")
    private String SetlmnWght;	//结算权重

    @BeanMapKey("BnkInsdBnkOtsd")
    @JsonProperty("BnkInsdBnkOtsd")
    @Length(max = 10)
    private String BnkInsdBnkOtsd;	//行内外标志

    public String getSetlmnAcctClsf() {
        return SetlmnAcctClsf;
    }

    public void setSetlmnAcctClsf(String setlmnAcctClsf) {
        SetlmnAcctClsf = setlmnAcctClsf;
    }

    public String getSetlmnMd() {
        return SetlmnMd;
    }

    public void setSetlmnMd(String setlmnMd) {
        SetlmnMd = setlmnMd;
    }

    public String getAcctClsf() {
        return AcctClsf;
    }

    public void setAcctClsf(String acctClsf) {
        AcctClsf = acctClsf;
    }

    public String getAmtTp() {
        return AmtTp;
    }

    public void setAmtTp(String amtTp) {
        AmtTp = amtTp;
    }

    public String getSetlmnAmt() {
        return SetlmnAmt;
    }

    public void setSetlmnAmt(String setlmnAmt) {
        SetlmnAmt = setlmnAmt;
    }

    public String getSetlmnCustNo() {
        return SetlmnCustNo;
    }

    public void setSetlmnCustNo(String setlmnCustNo) {
        SetlmnCustNo = setlmnCustNo;
    }

    public String getSetlmnAcctNo() {
        return SetlmnAcctNo;
    }

    public void setSetlmnAcctNo(String setlmnAcctNo) {
        SetlmnAcctNo = setlmnAcctNo;
    }

    public String getSetlmnAcctPdTp() {
        return SetlmnAcctPdTp;
    }

    public void setSetlmnAcctPdTp(String setlmnAcctPdTp) {
        SetlmnAcctPdTp = setlmnAcctPdTp;
    }

    public String getSetlmnAcctCcy() {
        return SetlmnAcctCcy;
    }

    public void setSetlmnAcctCcy(String setlmnAcctCcy) {
        SetlmnAcctCcy = setlmnAcctCcy;
    }

    public String getSetlmnAcctSeqNo() {
        return SetlmnAcctSeqNo;
    }

    public void setSetlmnAcctSeqNo(String setlmnAcctSeqNo) {
        SetlmnAcctSeqNo = setlmnAcctSeqNo;
    }

    public String getAutoLockMrk() {
        return AutoLockMrk;
    }

    public void setAutoLockMrk(String autoLockMrk) {
        AutoLockMrk = autoLockMrk;
    }

    public String getLoanPrtyLvl() {
        return LoanPrtyLvl;
    }

    public void setLoanPrtyLvl(String loanPrtyLvl) {
        LoanPrtyLvl = loanPrtyLvl;
    }

    public String getSetlmnWght() {
        return SetlmnWght;
    }

    public void setSetlmnWght(String setlmnWght) {
        SetlmnWght = setlmnWght;
    }

    public String getBnkInsdBnkOtsd() {
        return BnkInsdBnkOtsd;
    }

    public void setBnkInsdBnkOtsd(String bnkInsdBnkOtsd) {
        BnkInsdBnkOtsd = bnkInsdBnkOtsd;
    }
}
